import request from '/@/utils/request';

const auth_api = import.meta.env.VITE_AUTH_API as string;

/**
 * 用户登录
 * @param params 要传的参数值
 * @returns 返回接口数据
 */
export function signIn(params: object) {
	return request({
		url: auth_api + '/token/sign',
		method: 'post',
		data: params
	});
}

/**
 * 用户退出登录
 * @param params 要传的参数值
 * @returns 返回接口数据
 */
export function signOut(params: object) {
	return request({
		url: auth_api + '/token/destroy',
		method: 'post',
		data: params
	});
}

/**
 * 刷新token
 * @param params 
 */
export function tokenRefresh(params: object){
	return request({
		url: auth_api + '/token/refresh',
		method: 'get',
		params: params
	})
}

/**
 * 获取sm2公钥
 * @param params 要传的参数值
 * @returns 返回接口数据
 */
export function getSm2PublicKey(params: object){
	return request({
		url: auth_api + '/sm2/publickey',
		method: 'get',
		params: params
	})
}

/**
 * 用户密码验证
 * @param params 要传的参数值
 * @returns 返回接口数据
 */
export function pwdVerify(params: object) {
	return request({
		url: auth_api + '/password/verify',
		method: 'post',
		data: params
	});
}

/**
 * 获取登录用户信息
 * @param params 
 * @returns 返回接口数据
 */
export function getLoginUserInfo(params?: object){
	return request({
		url: auth_api + '/user/info',
		method: 'get',
		params: params
	})
}

/**
 * 获取登录用户授权页面
 * @param params 
 * @returns 返回接口数据
 */
export function getLoginUserAuthPage(params?: object){
	return request({
		url: auth_api + '/user/auth/page',
		method: 'get',
		params: params
	})
}

/**
 * 获取登录用户授权操作
 * @param params 
 * @returns 返回接口数据
 */
export function getLoginUserAuthBtn(params?: object){
	return request({
		url: auth_api + '/user/auth/button',
		method: 'get',
		params: params
	})
}

/**
 * 获取登录用户路由菜单
 * @param params 
 */
export function getLoginUserRouterMenu(params?: object){
	return request({
		url: auth_api + '/user/router/menu',
		method: 'get',
		params: params
	});
}

/**
 * 获取验证码
 * @param params 
 * @returns 返回接口数据
 */
export function kaptchaVerify(params?: object){
	return request({
		url: auth_api + '/kaptcha/' + params.verifyKey,
		method: 'get',
		responseType: "blob"
	})
}
